/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.eventos.beans;

import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import org.cip.esymons.eventos.bc.TipoEventoDelegate;
import org.cip.esymons.eventos.be.TipoEvento;

/**
 *
 * @author OscarA
 */
public class TipoEventoController {

    TipoEventoDelegate delegate;
    TipoEvento tipoEvento;
    List<TipoEvento> listaTipoEventos;

    public TipoEventoController() {
        delegate = new TipoEventoDelegate();
        tipoEvento = new TipoEvento();
        listaTipoEventos = new ArrayList<TipoEvento>();
        listar();
    }

    public TipoEventoDelegate getDelegate() {
        return delegate;
    }

    public void setDelegate(TipoEventoDelegate delegate) {
        this.delegate = delegate;
    }

    public List<TipoEvento> getListaTipoEventos() {
        return listaTipoEventos;
    }

    public void setListaTipoEventos(List<TipoEvento> listaTipoEventos) {
        this.listaTipoEventos = listaTipoEventos;
    }

    public TipoEvento getTipoEvento() {
        return tipoEvento;
    }

    public void setTipoEvento(TipoEvento tipoEvento) {
        this.tipoEvento = tipoEvento;
    }

    public String navegar_nuevo() {
        cancelar();
        return "nuevo";
    }

    public String navegar_editar() {
        return "editar";
    }

    public String listar() {
        listaTipoEventos = delegate.listar_Todos();
        return "listar";
    }

    public String cancelar() {
        tipoEvento = new TipoEvento();
        return "OK";
    }

    public String reset() {
        try {
            tipoEvento = delegate.buscarTipoEvento(tipoEvento.getTevCodigo());
        } catch (Exception ex) {
        }
        return "OK";
    }

    public String guardar() {
        delegate.guardar(tipoEvento);
        cancelar();
        return "OK";
    }

    public String actualizar() {
        delegate.actualizar(getTipoEvento());
        return "OK";
    }

    public String eliminar() {
        tipoEvento.setTevActivo(false);
        delegate.actualizar(tipoEvento);
        listar();
        return "OK";
    }

    public SelectItem[] getComboTipoEventos() {
        SelectItem[] comboTipoEventos;
        try {
            listaTipoEventos = delegate.listar_Todos();
            if (listaTipoEventos.size() > 0) {
                comboTipoEventos = new SelectItem[listaTipoEventos.size()];
                for (int i = 0; i < listaTipoEventos.size(); i++) {
                    comboTipoEventos[i] = new SelectItem(listaTipoEventos.get(i), listaTipoEventos.get(i).getTevNombre());
                }
            } else {
                comboTipoEventos = new SelectItem[1];
                comboTipoEventos[0] = new SelectItem(new TipoEvento(), "No hay Tipo Eventos registrados");
            }
            return comboTipoEventos;

        } catch (Exception e) {
            //Mensaje al usuario
            listaTipoEventos = new ArrayList<TipoEvento>();
            comboTipoEventos = new SelectItem[1];
            comboTipoEventos[0] = new SelectItem(new TipoEvento(), "No hay Tipo Eventos");
            return comboTipoEventos;
        }
    }
}
